/* 
类类型: 实现接口
1. 一个类可以实现多个接口
2. 一个接口可以继承多个接口

*/
(function () {
  interface Alarm {  // 接口是抽象的描述
    alert(): void
  }

  interface Light {
    lightOn (): void

    lightOff (): void
  }

  interface LightableAlarm extends Alarm, Light{
   
  }

  class Car2 implements LightableAlarm {
    alert(): void {
      console.log('Car2 alert()')
    }

    lightOn (): void {
      console.log('Car2 lignton')
    }
    
    lightOff (): void {
      console.log('Car2 lightOff')
    }
  }

  class Car implements Alarm, Light {
    alert(): void {
      console.log('Car alert()')
    }

    lightOn (): void {
      console.log('Car lignton')
    }
    
    lightOff (): void {
      console.log('Car lightOff')
    }
  }

  let a = new Car()
  a.alert()
  a.lightOff()
  a.lightOn()
})()